package Exception;

import java.util.InputMismatchException;
import java.util.Scanner;

public class TestException {
    public static void main(String[] args) throws Exception {
        //method1();//人为暴露异常；可能输入错误导致异常
        //method2();//提供方案一|:捕获异常：try{可能出现问题的代码}catch(异常类型 异常名){可以执行的解决方案}
        //method3();//提供方案二：抛出异常throws
        f();//为了标准解决异常，而不是把异常留给main方法
    }

    private static void f() {
        try{
            method3();//把存在问题的方法放入此处【方法异常：谁调用，谁解决】
        }catch(Exception e){
            System.out.println("请输入正确的数据");
        }
    }

    private static void method3() throws Exception { //当抛出异常时，需要同步main方法的异常向上抛出

        System.out.println("请输入第一个数");
        int a = new Scanner(System.in).nextInt();
        System.out.println("请输入第二个数");
        int b = new Scanner(System.in).nextInt();
        System.out.println(a / b);
    }

    private static void method2() {
        try {
            System.out.println("请输入第一个数");
            int a = new Scanner(System.in).nextInt();
            System.out.println("请输入第二个数");
            int b = new Scanner(System.in).nextInt();
            System.out.println(a / b);//
        }catch(InputMismatchException e) {
            System.out.println("请输入整数型");
        }catch(ArithmeticException e){
            System.out.println("除数不为0");
        } catch(Exception e){
            System.out.println("请输入正确的数据");
        }
    }

    private static void method1() {
         //1.提示输入一个数
        System.out.println("请输入第一个数");
        int a =  new Scanner(System.in).nextInt();
        System.out.println("请输入第二个数");
        int b =  new Scanner(System.in).nextInt();
        System.out.println(a/b);
        /*
            InputMismatchException
            ArithmeticException
         */

    }
}
